home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 March / CMCD0305.ISO / Software / Shareware / Utilitare / emu / Emu8086_Setup_307c.exe / {app} / Samples / paramexe.asm < prev    next >
Assembly Source File  |  2002-08-23  |  2KB  |  93 lines

  1.  
  2. ; This sample prints out the command
  3. ; line parameters.
  4. ; In DOS you simply add this line
  5. ; after an executable:
  6. ; paramexe.exe my parameters
  7. ; In emulator you should set them by
  8. ; selecting "Set command line parameters"
  9. ; from "File" menu of emulator window.
  10.  
  11.  
  12. ; Directive to select
  13. ; "make EXE" by default when
  14. ; source file is compiled:
  15.    #MAKE_EXE#
  16.  
  17. DSEG    SEGMENT 'DATA'
  18. buffer  DB  100 dup (' ')
  19. msg DB 'No command line parameters!', 13, 10, '$'
  20. DSEG    ENDS
  21.  
  22. SSEG    SEGMENT STACK   'STACK'
  23.     DW  100h    DUP(?)
  24. SSEG    ENDS
  25.  
  26. CSEG    SEGMENT 'CODE'
  27.  
  28. ;*******************************************
  29.  
  30. START   PROC    FAR
  31.  
  32. ; set segment registers:
  33.     MOV AX, DSEG
  34.     
  35.     MOV DS, AX
  36.  
  37. ; we'll keep PSP address in ES,
  38. ; so ES is not set to data segment.
  39.  
  40. ; address of command line:
  41. MOV SI, 80h
  42.  
  43. ; copy command line to our buffer:
  44. XOR CX, CX      ; zero CX register.
  45. MOV CL, ES:[SI] ; get command line size.
  46.  
  47. LEA DI, buffer  ; load buffer address to DI.
  48.  
  49. CMP CX, 0       ; CX = 0 ?
  50. JZ  no_param    ; then skip the copy.
  51.  
  52. INC SI      ; copy from second byte.
  53. next_char:
  54. MOV AL, ES:[SI]
  55. MOV [DI], AL
  56. INC SI
  57. INC DI
  58. LOOP    next_char
  59.  
  60. copied:
  61. ; set '$' sign in the end of the buffer:
  62. MOV BYTE PTR [DI], '$'
  63.  
  64. ; print out the buffer:
  65. LEA DX, buffer
  66. MOV AH, 9h
  67. INT 21h
  68.  
  69.  
  70. JMP exit    ; skip error message.
  71.  
  72. no_param:
  73. ; print out the error message:
  74. LEA DX, msg
  75. MOV AH, 09h
  76. INT 21h
  77. JMP exit
  78.  
  79. ; exit here:
  80. exit:
  81.  
  82. ; return to operating system:
  83. MOV AH, 4Ch
  84. INT 21h
  85.  
  86. RET
  87. START   ENDP
  88.  
  89. ;*******************************************
  90.  
  91. CSEG    ENDS
  92.     END START
  93.